package issr.entity;
// Generated 27-set-2012 19.32.49 by Hibernate Tools 3.2.1.GA

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Prodotto generated by hbm2java
 */
@Entity
@Table(name = "prodotto", catalog = "issr")
public class Prodotto implements java.io.Serializable {

    private Integer id;
    private String nome;
    private Date inserimento;
    private Puntovendita puntovendita;
//    private IndiceMaster imaster;
//    private IndiceTemp itemp;

    public Prodotto() {
    }

    public Prodotto(String nome) {
        this.nome = nome;
        this.inserimento = new Date();
    }

    public Prodotto(String nome, Puntovendita puntoVendita) {
        this.nome = nome;
        this.puntovendita = puntoVendita;
        this.inserimento = new Date();
    }

    public Prodotto(String nome, Date inserimento, Puntovendita puntoVendita, IndiceMaster imaster, IndiceTemp itemp) {
        this.nome = nome;
        this.inserimento = inserimento;
        this.puntovendita = puntoVendita;
//        this.imaster = imaster;
//        this.itemp = itemp;
    }

    public Prodotto(String nome, Date inserimento) {
        this.nome = nome;
        this.inserimento = inserimento;
    }

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Column(name = "nome", nullable = false, length = 60)
    public String getNome() {
        return this.nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "inserimento", nullable = false, length = 19)
    public Date getInserimento() {
        return this.inserimento;
    }

    public void setInserimento(Date inserimento) {
        this.inserimento = inserimento;
    }

    public void setPuntovendita(Puntovendita puntoVendita) {
        this.puntovendita = puntoVendita;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "pv", nullable = false)
    public Puntovendita getPuntovendita() {
        return this.puntovendita;
    }

//    @OneToOne
//    public IndiceMaster getImaster() {
//        return imaster;
//    }
//
//    public void setImaster(IndiceMaster imaster) {
//        this.imaster = imaster;
//    }
//
//    @OneToOne
//    public IndiceTemp getItemp() {
//        return itemp;
//    }
//
//    public void setItemp(IndiceTemp itemp) {
//        this.itemp = itemp;
//    }

    @Override
    public String toString() {
        return this.nome;
    }
}
